package com.vr.cloudpicture.common;

import com.vr.cloudpicture.exception.ErrorCode;

/**
 * 通用结果返回结果工具类
 * @author hzh
 * @date 2025/04/24
 */
public class ResultUtils {
    /**
     * 成功
     * @param data 数据
     * @return {@code BaseResponse<T> } 响应
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "ok");
    }

    /**
     * 成功
     *
     * @param message 消息
     * @return {@code BaseResponse<T> } 响应
     */
    public static <T> BaseResponse<T> success(T data,String message) {
        return new BaseResponse<>(0, null, message);
    }

    /**
     * 成功
     * @param code 成功码
     * @param data 数据
     * @return {@code BaseResponse<T> } 响应
     */
    public static <T> BaseResponse<T> success(int code, T data) {
        return new BaseResponse<>(code, data);
    }

    /**
     * 失败
     * @param errorCode 错误码
     * @return {@code BaseResponse<T> } 响应
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 失败
     * @param errorCode 错误码
     * @param message 失败消息
     * @return {@code BaseResponse<T> } 响应
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode, String message) {
        return new BaseResponse<>(errorCode.getCode(), null, message);
    }

    /**
     * 失败
     * @param code 状态码
     * @param message 失败消息
     * @return {@code BaseResponse<T> } 失败
     */
    public static <T> BaseResponse<T> error(int code, String message) {
        return new BaseResponse<>(code, null, message);
    }

    public static <T> BaseResponse<T> toBaseResponse(boolean f) {
        if (f) {
            return success(null,"操作成功");
        } else {
            return error(ErrorCode.OPERATION_ERROR);
        }
    }

}
